/*
 * @Author: sympsel sympsel@outlook.com
 * @Date: 2025-07-15 08:58:53
 * @LastEditors: sympsel sympsel@outlook.com
 * @LastEditTime: 2025-07-15 12:51:36
 * @FilePath: \work25_7_15\src\SinglyList.h
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// slist.h

#include <stdio.h>

#include <stdlib.h>

#define MALLOC(type, count) (type*)malloc(sizeof(type) * count)

typedef int SLTDateType;
typedef struct SListNode
{
	SLTDateType data;
	struct SListNode* next;
}SListNode;

// 动态申请一个节点
SListNode* BuySListNode(SLTDateType data);
SListNode* BuySListNodeWithNext(SLTDateType data, SListNode* next);
// 单链表打印
void SListPrint(SListNode* plist);
// 单链表尾插
void SListPushBack(SListNode** pplist, SLTDateType data);
// 单链表的头插
void SListPushFront(SListNode** pplist, SLTDateType data);
// 单链表的尾删
void SListPopBack(SListNode** pplist);
// 单链表头删
void SListPopFront(SListNode** pplist);
// 单链表查找
SListNode* SListFind(SListNode* plist, SLTDateType data);
// 单链表在pos位置之后插入x
// 分析思考为什么不在pos位置之前插入？
void SListInsertAfter(SListNode* pos, SLTDateType data);
// 单链表删除pos位置之后的值
// 分析思考为什么不删除pos位置？
void SListEraseAfter(SListNode* pos);

// 删除链表
void SListDistory(SListNode** pplist);